package 剑指offer_leetcode;

import java.util.Stack;

/**
 * JZ54二叉搜索树的第k个节点 第k 小
 * 第 K 大 ===
 */
public class 剑指Offer54_二叉搜索树的第k大节点 {
    public int kthLargest(TreeNode root, int k) {
        if(root==null || k<= 0)
            return -1;
        int cnt = 0;
        TreeNode p = null;
        Stack<TreeNode> s = new Stack<>();
        while(!s.isEmpty() || root!=null){
            while(root!=null){
                s.push(root);
                root = root.right;
            }
            cnt++;
            p = s.pop();
            if(cnt==k)
                return p.val;
            root = p.left;
        }
        return -1;
    }
}
